package com.ruoyi.rsikManage.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @author wxx
 * @description
 * @date 2023/9/10 8:38

 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AlarmEventRequest {


    /**
     * 开始时间（用于告警时间筛选）
     */
    private String idId;

    /**
     * 组织名称
     */
    private String orgName;

    /**
     * 组织名称
     */
    private String deviceName;

    /**
     * 报警名称
     */
    private String AlgoName;

    /**
     * 开始时间（用于告警时间筛选）
     */
    private String startTime;

    /**
     * 结束时间（用于告警时间筛选）
     */
    private String endTime;

    /**
     * 开始处理时间（用于处理时间筛选）
     */
    private String startTimeHandle;

    /**
     * 结束处理时间（用于处理时间筛选）
     */
    private String endTimeHandle;

    /**
     * 告警级别
     */
    private String alarmLevel;

    /**
     * 处理状态
     */
    private String handelStatus;

    /**
     * 告警类型名称
     */
    private String alarmTypeName;


    private String sort;

    /**
     * 过滤类型 0 1 2
     * 0过滤以报备内容
     * 1查询全部报警记录包含以报备内容
     * 2仅查看以报备内容
     */
    private String filter;

    private Long unitCode;

    private Integer pageNum;

    private Integer pageSize;

    private List<Long> ids;

    private String approve;


    /**
     * 新增多选筛选条件
     * 监控点id数组
     */
    private List<String> orgNames;
    /**
     * 新增多选筛选条件
     * 监控点id数组
     */
    private List<String> apeIds;
    /**
     * 新增多选筛选条件
     * 监控点名称数组
     */
    private List<String> apeNames;
    /**
     * 新增多选筛选条件
     * 告警类型名称数组数组
     */
    private List<String> alarmTypeNames;

    /**
     * 新增多选筛选条件
     * 排除告警类型名称数组
     */
    private List<String> alarmTypeNamesOutside;

    /**
     * 电子围栏 - 新增指定区域筛选
     * 指定区域areaId
     */
    private List<Long> areaIds;
    /**
     * 用作查询条件 煤矿编号集合
     */
    private List<Long> unitCodes;

    /** 状态持续时间 秒数 */
    @Excel(name = "状态持续时间 秒数")
    private Integer durationSeconds;

    /** 状态持续时间 */
    @Excel(name = "状态持续时间")
    private String durationSecondsStr;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "状态变更开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime statusStartDatetime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "状态变更结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime statusEndDatetime;

}
